package com.tpl.core.basedata.service;

import com.tpl.core.common.page.Page;
import com.tpl.core.entity.sys.Dept;
import com.tpl.core.entity.sys.User;

import java.util.List;



/**
 * 说明 :
 * @author <a href="mailto:3380084@gmail.com">张坤雷</a>
 * @version 创建时间：2013-7-23 下午2:05:31 
 *
 */
public interface DeptUserService {

	/**
	 * 
	 * 说明 :获取部门下的用户列表信息
	 * @param pageIndex TODO
	 * @param pageSize TODO
	 */
	Page getUsersByDeptId2(Long deptId, User u, int pageIndex, int pageSize, Long tf);
	Page getUsersByDeptId(Long deptId,User u,int pageIndex, int pageSize);
	
	/**
	 * 
	 * 说明 :根据用户ID获取用户信息
	 */
	User getUserById(Long id);
	
	/**
	 * 
	 * 说明 :保存用户信息
	 * @param deptId TODO
	 */
	void doSave(User user, Long deptId);
	/**
	 * 
	 * 说明 :获取用户所有部门
	 */
	List<Dept> getUserDepts(Long userId);
	
	/**
	 * 获取部门下所有人员
	 * @param deptId
	 * @return
	 */
	List<User> getUserByDeptId(Long deptId);
	/**
	 * 软删除部门下人员
	 * @param deptId
	 * @return
	 */
	void deleteUser(Long userId,Long deptId);
	/**
	 * 软删除部门下人员
	 * @param deptId
	 * @return
	 */
	void deleteUsers(String userIds,Long deptId);
	
	List getCurDeptUsers(Long deptId,Long inDeptId);
	
	void doSaveDistribution(Long deptId,Long [] userIds) throws Exception;
	
	void doSaveTranslation(Long inDeptId,Long outDeptId,Long userId);
	
	boolean isRootUser(Long userId,Long currDeptId);
	
	List<Dept> getTransferDepts(Long rootDeptId,Long userId);
	
	void doChangePwd(User user);

	void doImportUser(List<User> list, Long deptId);
	void doChangeState(Long userId,Integer state);

	Page getUserByDeptIds(String dids,int pageIndex, int pageSize);

	List<User> getUserListByDeptId(Long deptId);
}
